#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
//int main()
//{
//  printf("fork之前:i am a process ,pid:%d,ppid:%d\n",getpid(),getppid());
//
//  fork();
//
//  printf("fork之后:i am a process ,pid:%d,ppid:%d\n",getpid(),getppid());
//  return 0;
//
//}
//int main()
//{
//  printf("fork之前i am a process,pid:%d ,ppid:%d\n",getpid(),getppid());
//  sleep(5);
//
//  printf("开始创建子进程\n");
//
//  pid_t id = fork();
//
//  if(id < 0){
//    return 1;
//  }
//  else if(id == 0)
//  {
//    //子进程
//    while(1)
//    {
//      printf("fork之后，我是子进程，pid:%d,ppid:%d,id:%d\n",getpid(),getppid(),id);
//      sleep(1);
//    }
//  }
//  else{
//    //父进程
//    while(1)
//    {
//      printf("fork之后，我是父进程，pid:%d,ppid:%d,id:%d\n",getpid(),getppid(),id);
//      sleep(1);
//
//     }
//  }
//
//  return 0;
//}
const int num = 10;
void worker()
{
  int cnt = 10;
  while(cnt)
  {
    printf("child %d is running,cnt:%d\n",getpid(),cnt);
    --cnt;
    sleep(1);
  }
}
int main()
{
  for(int i =0;i < num; ++i)
  {
    pid_t id = fork();
    if(id<0)
    {
      break;
    }
    if(id == 0)
    {
      worker();
      exit(0);
    }
   printf("父进程成功创建子进程,id:%d\n",id);
   sleep(1);
  }
  sleep(10);
  return 0;
}
